package com.itheima.d7_interface_demo;

import java.util.ArrayList;

//业务2
public class StudentOperatorImpl2 implements StudentOperator {
    /**
     * 功能： 打印全班所有学生信息
     * @param students    集合(存储了所有的学生对象)
     */
    @Override
    public void printAllInfo(ArrayList<Student> students) {
        System.out.println("============展示全班学生信息=============");
        //定义变量：分别记录男生、女生人数
        int count1=0;//记录男生人数
        int count2=0;//记录女生人数

        //遍历集合
        for (int i = 0; i < students.size(); i++) {
            //获取每一个学生对象
            Student student = students.get(i);
            System.out.println(student.getName()+" , "+student.getGender()+" , "+student.getScore());

            //判断：是男生还是女生
            if(student.getGender().equals("男")){
                count1++;
            }else{
                count2++;
            }
        }
        //统计：男生、女生人数、总人数
        System.out.println("班级男生人数："+count1);
        System.out.println("班级女生人数："+count2);
        System.out.println("班级总人数："+students.size());
    }

    /**
     * 打印全班平均成绩
     * @param students   集合(存储了所有的学生对象)
     */
    @Override
    public void printAverageScore(ArrayList<Student> students) {
        System.out.println("=============全班学生平均成绩==============");
        double totalScore=students.get(0).getScore();//记录总分
        double max = students.get(0).getScore(); //假设第一个学生成绩为最高分
        double min = students.get(0).getScore();

        //计算总分： 遍历集合，把所有学生成绩累加
        for (int i = 1; i < students.size(); i++) {
            totalScore = students.get(i).getScore() + totalScore;
            if(max < students.get(i).getScore()){
                max = students.get(i).getScore();
            }
            if(min > students.get(i).getScore()){
                min = students.get(i).getScore();
            }
        }
        //平均分 = 总分 / 总人数
        double avg  =(totalScore-max-min) / (double) (students.size()-2);
        System.out.println("全班平均分为："+avg);
    }
}
